return {
  "mhartington/formatter.nvim",
  event = "VeryLazy",
  config = function()
    -- 配置内容将在这里编写
    local util = require("formatter.util")

    require("formatter").setup({
        logging = true,
        log_level = vim.log.levels.WARN,
        filetype = {
            -- Lua 文件格式化（使用 stylua）
            lua = {
                require("formatter.filetypes.lua").stylua,
            },

            -- C 语言配置
            c = {
                function()
                    return {
                    exe = "clang-format",
                    args = {
                        "--style=google",  -- 使用 Google 代码风格
                        "--assume-filename=.c",  -- 显式指定文件类型
                        util.escape_path(util.get_current_buffer_file_path()),
                    },
                    stdin = true,
                    cwd = util.get_current_buffer_file_dir(),  -- 在文件所在目录查找 .clang-format 配置
                    }
                end,
            },

            -- C++ 语言配置
            cpp = {
                function()
                    return {
                    exe = "clang-format",
                    args = {
                        "--style=google",  -- 使用 Google 代码风格
                        "--assume-filename=.cpp",  -- 显式指定文件类型
                        util.escape_path(util.get_current_buffer_file_path()),
                    },
                    stdin = true,
                    cwd = util.get_current_buffer_file_dir(),  -- 优先使用项目本地配置
                    }
                end,
            },

            -- JavaScript/TypeScript 格式化（使用 prettier）
            javascript = {
                require("formatter.filetypes.javascript").prettier,
            },
            typescript = {
                require("formatter.filetypes.javascript").prettier,
            },

            -- Python 格式化（使用 black）
            python = {
                require("formatter.filetypes.python").black,
            },

            -- 所有文件通用配置（移除尾随空格）
            ["*"] = {
                require("formatter.filetypes.any").remove_trailing_whitespace,
            },
        },
    })

    -- local augroup = vim.api.nvim_create_augroup("FormatterAutoGroup", { clear = true })
    -- vim.api.nvim_create_autocmd("BufWritePost", {
    --     group = augroup,
    --     command = ":FormatWrite",
    --     desc = "Auto format on save",
    -- })
  end,
  keys = {
    {"<C-I>", "<cmd>Format<CR>", desc = "Format file"}
  }
}